"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/11/6 10:42
@Description :  线程的使用

进程是分配资源的最小单位，一旦创建一个进程就会分配一定的资源
QQ  进程   主线程  多个子线程    多人聊天   A  B
线程是最终执行任务的最小单元
"""
import os
import threading
import time
from threading import Thread


def sing():
    print('sing线程编号:',threading.current_thread().ident,"进程编号",os.getpid())
    for i in range(5):
        print("唱歌")
        time.sleep(0.5)


def dance():
    print('dance线程编号:', threading.current_thread().ident,"进程编号",os.getpid())
    for i in range(5):
        print("跳舞")
        time.sleep(0.5)


if __name__ == '__main__':
    print('主线程编号:',threading.current_thread().ident,"进程编号",os.getpid())
    # 创建线程
    thread1 = Thread(target=sing)
    thread2 = Thread(target=dance)

    # 设置守护线程   时机 需要再开始线程前
    thread1.daemon = True
    thread2.daemon = True

    # 开启线程  抢占cpu的运行时间
    thread1.start()
    thread2.start()

    # 默认情况下  主线程需要等待所有子线程任务结束后才能结束
    print("------------主线程任务结束-------------")
